// 引入 axios
import type { AxiosRequestConfig, AxiosResponse } from 'axios'

// 定义接口
export interface HRequestInterceptors<T = AxiosResponse> {
	// 请求拦截器（成功与失败）
	requestInterceptors?: (config: AxiosRequestConfig) => AxiosRequestConfig;
	requestInterceptorsCatch?: (error: any) => any;
	// 相应拦截器（成功与失败）
	responseInterceptor?: (res: T) => T;
	responseInterceptorCatch?: (error: any) => any;
}

// 继承接口: 定义每个请求的拦截器并且设置请求状态显示
export interface HRequestConfig<T = AxiosResponse> extends AxiosRequestConfig {
	interceptors?: HRequestInterceptors<T>;
	// 是否展示请求加载状态
	showLoading?: boolean;
}
